package com.itrus.auth.demo;

import com.itrus.auth.demo.company.bank.BankPayAuth;
import com.itrus.auth.demo.company.bank.BankQueryAuth;
import com.itrus.auth.demo.company.bank.BankVerifyAuth;
import com.itrus.auth.demo.company.basic.*;
import com.itrus.auth.demo.company.ocr.BusinessCardOcr;
import com.itrus.auth.demo.core.Config;
import com.itrus.auth.demo.person.basic.*;
import com.itrus.auth.demo.person.face.H5BlinkAuth;
import com.itrus.auth.demo.person.face.H5FaceCheckNum;
import com.itrus.auth.demo.person.face.H5FaceCheckNumAuth;
import com.itrus.auth.demo.person.face.H5FaceCheckSilentAuth;
import com.itrus.auth.demo.person.ocr.BankCardOcr;
import com.itrus.auth.demo.person.ocr.IdCardOcr;
import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.util.Base64;

/**
 * @author : peigen
 * @since: 2023/8/1 17:52
 */
public class QuickStart {

    /**
     * 预发布环境地址
     */
    private static final String URL = "https://demo-open.itruscloud.com/apigate/authapi";
    /**
     * 生产环境地址
     */
//    private static final String URL = "https://open.itruscloud.com/apigate/authapi";
    /**
     * 天威云 appId
     */
    private static final String APP_ID = "替换此值";
    /**
     * 天威云 SecretKey
     */
    private static final String SECRET_KEY = "替换此值";


    public static void main(String[] args) throws IOException {

        Config config = new Config(URL, APP_ID, SECRET_KEY);

        String name = "测试姓名";
        String idCard = "130825199001011234";
        String mobile = "18511861234";
        String bankCard = "6225880212341234";

        //企业名称
        String companyName = "北京天威诚信电子商务服务有限公司";
        //企业社会统一信用代码
        String idCode = "911101088020176153";
        String orgCode = "";
        //企业类型
        String type = "ET_PE";
//
//        // 身份证简项
//        IdCardAuth idCardAuth = new IdCardAuth(config);
//        idCardAuth.auth(name, idCard);
//
//        // 身份证人像核验
//        IdCardImageAuth idCardImageAuth = new IdCardImageAuth(config);
//        idCardImageAuth.auth(name, idCard, idCard);
////
////        // 银行卡三要素
//        BankCardThreeAuth bankCardAuth = new BankCardThreeAuth(config);
//        bankCardAuth.auth(name, idCard, idCard);
//
//        // 银行卡四要素
//        BankCardFourAuth bankCardMobileAuth = new BankCardFourAuth(config);
//        bankCardMobileAuth.auth(name, idCard, bankCard, mobile);
//
//        // 手机号三要素
//        MobileThreeAuth mobileThreeAuth = new MobileThreeAuth(config);
//        mobileThreeAuth.auth(name, idCard, mobile);
//
//        // 身份证 ocr
//        IdCardOcr idCardOcr = new IdCardOcr(config);
//        idCardOcr.auth(bankCard);
//
//        // 银行卡 ocr
//        BankCardOcr bankCardOcr = new BankCardOcr(config);
//        bankCardOcr.auth(name);

        // 静默
//        URL resource = QuickStart.class.getResource("/video-demo.mp4");
//        byte[] bytes = FileUtils.readFileToByteArray(new File(resource.getFile()));
//        String videoFileBase64 = Base64.getEncoder().encodeToString(bytes);
//        H5FaceCheckSilentAuth h5FaceCheckSilentAuth = new H5FaceCheckSilentAuth(config);
//        h5FaceCheckSilentAuth.auth(name, idCard, videoFileBase64);
//
//        // 获取熟读唇语
//        H5FaceCheckNum h5FaceCheckNum = new H5FaceCheckNum(config);
//        h5FaceCheckNum.getNumber(name, idCard);
//        // 数读
//        // idc202308031545135022738
//        String orderNo = "替换为数读接口返回的流水号";
//
//        H5FaceCheckNumAuth h5FaceCheckNumAuth = new H5FaceCheckNumAuth(config);
//        h5FaceCheckNumAuth.auth(name, idCard, orderNo, videoFileBase64);
//
//        // 获取 h5 眨眼验证地址
//        String url = "www.baidu.com";
//        H5BlinkAuth h5BlinkAuth = new H5BlinkAuth(config);
//        h5BlinkAuth.auth(name, idCard, "browser", url, url, url);
//
//        // idb0007 企业登记信息详情版
//        // idb0003 企业工商信息详情版
//        CompanyCodeAuth companyCodeAuth = new CompanyCodeAuth(config);
//        companyCodeAuth.auth(companyName, idCode, orgCode, type);
//
//        // idb0019 企业工商以及代理人信息详情版
//        // idb0023 企业登记以及代理人信息详情版
//        AgentNameIdAuth agentNameIdAuth = new AgentNameIdAuth(config);
//        agentNameIdAuth.auth(companyName, idCode, orgCode, type, name, idCard);
//
//        // idb0027 企业工商、法人以及代理人信息详情版
//        // idb0031 企业登记、法人以及代理人信息详情版
//        LegalAndAgentNameIdAuth legalAndAgentNameIdAuth = new LegalAndAgentNameIdAuth(config);
//        legalAndAgentNameIdAuth.auth(companyName, idCode, orgCode, type, name, idCard, name, idCard);
//
//        // 营业执照 ocr
//        BusinessCardOcr businessCardOcr = new BusinessCardOcr(config);
//        businessCardOcr.auth(name);
//
//        // idb0006 企业工商及法人姓名信息详情版
//        LegalNameAuth legalNameAuth = new LegalNameAuth(config);
//        legalNameAuth.auth(companyName, idCode, orgCode, type, name);
//
//        // idb0011 企业工商以及法人信息详情版
//        // idb0015 企业登记以及法人信息详情版
//        // idb0033 企业法人认证
//        LegalNameIdAuth legalNameIdAuth = new LegalNameIdAuth(config);
//        legalNameIdAuth.auth(companyName, idCode, orgCode, type, name, idCard);
//
//        // 企业工商及法人姓名信息详情版
//        LegalNameAuth legalAuth = new LegalNameAuth(config);
//        legalAuth.auth(companyName, idCode, orgCode, type, name);
//
//
//        // 银行打款
//        //企业银行卡账号
//        String accountNo = "866381719710001";
//        //企业开户行名称
//        String accountBank = "招商银行";
//        //企业名称
//        String keyName = "北京天威诚信电子商务服务有限公司";
//        //电子联行号（支行code--- 选填）
//        String subBank = "308100005221";
//        String payCallbackUrl = "www.baidu.com";
//
//        // 申请打款
//        BankPayAuth bankPayAuth = new BankPayAuth(config);
//        bankPayAuth.pay(accountNo, accountBank, keyName, subBank, payCallbackUrl);
//
//        // 查询打款结果，orderNumber 为申请打款接口返回
//        String orderNumber = "idb202308022039540168275";
//        BankQueryAuth bankQueryAuth = new BankQueryAuth(config);
//        bankQueryAuth.query(orderNumber);
//
//        // 打款验证
//        BankVerifyAuth bankVerifyAuth = new BankVerifyAuth(config);
//        bankVerifyAuth.verify(orderNumber, "0.01");
    }
}
